package PROYECTO2.src.Frames_Minds;
import java.util.ArrayList;
import java.util.Random;

import PROYECTO2.src.Game;
import PROYECTO2.src.Naves.Enemigos.Cylon;

public class MindCylons extends Thread  {

	
	protected ArrayList cylons;
	protected PanelCylons panel;
	private Game game;
	private Random ran;
	private boolean stop;
	
	public MindCylons(PanelCylons p, Game g) {
		cylons = new ArrayList();
		panel = p;
		
		stop = false;
		
		ran=new Random(0);
		game=g;

       	
		
	}
	
	public void run() {
		try {
			while (!stop) {
				
				MindCylons.sleep(100);
				
				//calcula la probabilidad de aparicion de los enemigos en pantalla
				
				if(ran.nextInt(20)==0){
					Cylon m = game.nextCylon();
					if(m!=null){
						cylons.add(m);
					}
				}

				//mueve y remueve, en caso de ser necesario, las naves enemigas
				
		        for (int i = 0; i < cylons.size(); i++ ) {
		            Cylon m = (Cylon) cylons.get(i);
		            m.move();
		            if (!m.getVisible()){
		            	cylons.remove(i);
		            	game.addExposion(m.getExplosion());
		            }
		            //dispara y aumenta un contador ciclico que retrasa la distancia entre la ejecucion de los disparos
		            m.shooting();
		            m.setDis();
		        }
		        game.setCylons(cylons);
				panel.repaint();
			}
		
		} catch (InterruptedException e) {
			
		}
	}

	public ArrayList getCylons() {
		return cylons;
	}
	
	public void setStop(){
		stop=true;
	}

}